Software needs to be tested before it is delivered. For example, several features of an application under test (AUT) may be manually executed, and the results may be compared with their expected outcomes. Although the application can be tested manually, the recent trend is moving toward automated testing. Commonly, automated testing involves automating a manual process already in place that uses a formalized testing process. Record and playback features of conventional automated testing tools (e.g., HP QTP®, IBM RFT®, etc.) may capture and record the user's actions or manual testing steps to generated test scripts, which may be used later for automatic testing of the application under test.
However, as an application changes to adopt new features or functionalities, the test scripts may need to be updated or rewritten from scratch, thus ensuing in high maintenance costs. As for the maintenance of the test scripts, it has become harder to acquire test automation experts due to growing demands and increasing complexities in applications in general. Furthermore, as test automation projects for an organization or company spread across different geographical locations, business units, and/or various domains, it has become even more difficult to manage the test automation projects using the conventional automated testing tools.